package com.zhaungjie.base.utils.ExcelUtil.style.annotation;

import com.zhaungjie.base.utils.ExcelUtil.constant.StyleConstant;
import com.zhaungjie.base.utils.ExcelUtil.style.matcher.CellStyleMatcher;
import org.apache.poi.ss.usermodel.IndexedColors;

import java.lang.annotation.*;

/**
 * excel单元格样式
 *
 * @author zhuangjie
 * @date 2024/06/04
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Repeatable(ExcelCellStyles.class)
public @interface ExcelCellStyle {

    /**
     * spEL适用于固定简单的条件匹配（当不声明时该属性时，默认条件成立）
     * condition与complexCondition条件同时成立时，本注解声明的样式才有效
     */
    String condition();

    /**
     * 请实现CellStyleMatcher接口，并在此声明使用（当不声明时该属性时，默认条件成立）
     * condition与complexCondition条件同时成立时，本注解声明的样式才有效
     */
    Class<CellStyleMatcher> complexCondition() default CellStyleMatcher.class;

    /**
     * 单元格背景颜色
     * @see IndexedColors
     */
    short fillBackgroundColor() default StyleConstant.COLOR_VALUE_UNDEFINED;

    /**
     * 字体颜色
     * @see IndexedColors
     */
    short fontColor() default StyleConstant.COLOR_VALUE_UNDEFINED;

    /**
     * 是否加粗字体
     */
    boolean fontWeight() default false;
}
